package com.example.cloudmusic.home.repository

import com.example.cloudmusic.home.model.*

/**
 * 数据源策略接口
 * 定义获取数据的策略，可以有不同的实现（模拟数据、网络数据等）
 */
interface DataSourceStrategy {
    /**
     * 获取轮播图数据
     */
    suspend fun getBanners(): Result<List<Banner>>
    
    /**
     * 获取推荐歌单
     */
    suspend fun getRecommendedPlaylists(): Result<List<Playlist>>
    
    /**
     * 获取热门艺人
     */
    suspend fun getHotArtists(): Result<List<Artist>>
    
    /**
     * 获取个人歌单
     */
    suspend fun getPersonalPlaylists(): Result<List<Playlist>>
    
    /**
     * 获取音乐风格
     */
    suspend fun getMusicStyles(): Result<List<MusicStyle>>
    
    /**
     * 获取推荐歌曲
     */
    suspend fun getRecommendedMusics(): Result<List<Music>>
} 